#ifndef GROUND_TYPE_H
#define GROUND_TYPE_H


#include <map>
#include <string>


class GroundType
{
public:

	enum Index
	{
		INVALID,
		BEACH,
		CULTIVATED_LOW,		
		CULTIVATED_MEDIUM,
		CULTIVATED_HIGH,
		FERTILITY_LOW,
		FERTILITY_MEDIUM,
		FERTILITY_HIGH,
		FOREST_DENSE,
		FOREST_SPARSE,
		HILLS,	
		MOUNTAINS_HIGH,
		MOUNTAINS_LOW,
		OCEAN,
		SEA_SHALLOW,
		SWAMP,
		WILDERNESS,			
		SCORCHED,	
		IMPASSABLE_LAND,
		IMPASSABLE_SEA,
		COUNT
	};

	static Index get(unsigned int color);
	static Index get(std::string name);

private:
	static std::map<unsigned int, Index> colorMap;
	static std::map<std::string, Index> nameMap;

	std::string name;
};


#endif